package com.colin.aiyi.ui.registerwx;

import com.colin.aiyi.dao.ImpxUtils.ImpBindWXSendCode;
import com.colin.aiyi.dao.ImpxUtils.ImpCheckWXLogin;
import com.colin.aiyi.dao.ImpxUtils.ImpGetUserInfo;
import com.colin.aiyi.dao.ImpxUtils.ImpBindWX;
import com.colin.aiyi.entity.response.LoginResponse;
import com.colin.aiyi.entity.User;
import com.colin.aiyi.entity.WXRequest;
import com.colin.aiyi.entity.WXResponse;
import com.colin.aiyi.presenter.AbsP;
import com.colin.aiyi.presenter.Imp.ImpWXAccessTonken;

/**
 * Created by hl on 2017/6/21.
 */


/*
步骤，获取openid，检测openid是否绑定，绑定，个人（登）录信息
*/

public class ImpPRegisterWX extends AbsP {
    WXRequest wxRequest;
    User user=new User();
    @Override
    public void onSuccess(Object t) {
        /*拉取openid*/
        if (t instanceof  WXResponse){
            if (((WXResponse) t).getOpenid()!=null){
                wxRequest.setOpenId(((WXResponse) t).getOpenid());
                sendMsgToView(t);
                checkWXLogin(wxRequest);
                return;
            }
        }
        /*检测是否绑定*/
        if (t instanceof  LoginResponse){
            if (((LoginResponse) t).getCode()==200){
                user=((LoginResponse) t).getData();
                if (user.getAccessToken()!=null){
                    user_getUserInfo(user);
                }
                return;
            }
        }
        sendMsgToView(t);
    }

    /******
     * 获得微信 openid accessTonekn
     * @param v
     * @param <V>
     */

    @Override
    public <V> void getOpenId(V v) {
        super.getOpenId(v);
        this.wxRequest= (WXRequest) v;
        ImpWXAccessTonken iService=new ImpWXAccessTonken();
        iService.getWXAccessTonken(this,v);
    }

    /********
     * 检查微信openid 是否绑定，绑定返回 用户toneken，
     * @param v
     * @param <V>
     */
    @Override
    public <V> void checkWXLogin(V v) {
        super.checkWXLogin(v);
        ImpCheckWXLogin iService=new ImpCheckWXLogin();
        iService.checkWXLogin(this,v);
    }

    /********
     * 获得用户信息
     * @param user
     * @param <User>
     */
    @Override
    public <User> void user_getUserInfo(User user) {
        super.user_getUserInfo(user);
        iService=new ImpGetUserInfo();
        iService.getObject(user);
    }

    /* 第三方账号登录时绑定手机发送验证码*/
    @Override
    public <V> void bind_sendCode(V v) {
        super.bind_sendCode(v);
        iService=new ImpBindWXSendCode();
        iService.getObject(v);

    }

    /**********
     * 第三方登录时手机绑定手机
     * @param v
     * @param <V>
     */
    @Override
    public <V> void login_out_bind(V v) {
        super.login_out_bind(v);
        iService=new ImpBindWX();
        iService.getObject(this,v);
    }




}



